Generally, this invention relates to the field of controlling input/output boards which are connected to an I/O bus. Specifically, the invention focuses on techniques to configure aspects, such as address space, of input/output boards without needing to physically connect or change jumpers on the card either at physical installation or after a system change.
Assembling computer systems to suit individual needs or desires by adding peripheral devices is often done. When such devices are connected, frequently they connect to the computer through an I/O card. These I/O boards are installed at initial computer manufacture as well as whenever a user adds new capabilities to the computer by plugging them into available slots on the input/output bus of the computer. Unfortunately, the process of adding capability involves more than just xe2x80x9cplugging inxe2x80x9d the I/O board and running the computer. The user or installer must configure the I/O board so that the computer can recognize it to communicate with it. This can be an involved process. When a standard I/O busxe2x80x94the type of I/O bus traditionally installed in most computersxe2x80x94is involved, this process can be quite involved.
For a computer to be able to communicate with the I/O board, the computer must not only know what type of board it is, it must be able to selectively locate the I/O board and direct communications only to it. This is referred to as addressing the I/O board. As an example of the difficulties potentially encountered when assembling or changing such computer systems, the address must be assigned so that no other I/O boards have that same address. This problem of address allocation has been known for many years; several different solutions have been proposed, all with limitations overcome by the present invention. Several of these solutions, are discussed herein.
Perhaps the most common solution, and that referred to above is to provide physically changeable circuitry on the I/O board itself. The address or other characteristic is thus personalized by switches or jumpers which the installer must know how to set. The main drawback is that manual intervention is required at installation time which may lead to configuration errors. This can also require more detailed customer documentation and, as a practical matter, often leads the user to enlist professional help.
A second solution in the prior art is to replace the I/O bus. Recently, I/O busses have been developed which can specifically select one of the slots available through a slot select line or other technique. Naturally this has the undesirable consequence of increasing cost and possible even making slot location an important installation criteria. As an example of such a solution, U.S. Pat. No. 4,755,934 to Inoue discloses a system which selects a board location by a slot select signal generated through the I/O bus and then assigns the board in that slot a specific address. While such a solution can overcome the need for installation decisions, it does not meet the criteria of the present invention of accommodating existing designs.
Another solution is that proposed in U.S. Pat. No. 4,964,038 to Louis. This proposes a system in which all I/O boards connected to the I/O bus utilize specific circuitry capable of generating a random address. If there are as many addresses generated as there are boards connected, it can then be assumed that each board has a unique address; if not, the random generation process is repeated. While this solution does specifically address the ability to be compatible with standard I/O busses, it has drawbacks overcome by the present invention. Among these are both the requirement that all boards to be of that type (again not allowing accommodation of existing systems) and the inherent difficulties of using randomly generated addresses in configurations which usually place some constraints on address possibilities.
One other solution is that proposed by U.S. Pat. No. 4,675,813 to Locke in which the I/O board includes circuitry which specifically recognizes a hardwire-set address and a configurable address register. While this solution can work with a standard I/O bus and with other, traditional I/O boards, it has other limitations. It does require the hardwire-set address to be unique. This can be unacceptable in the present environment in which a manufacturer simply cannot know how each system might be configured. In addition, it also is limited in that only one such I/O board can be placed in any system. Again the present invention overcomes such limits.
While each of the above limitations have been recognized, a solution to such problems, among others, has not been available prior to the present invention. Certainly the long felt need existed and as the present invention shows, the implementing arts and elements had been long available. Those skilled in the art appear to have been lead to believe that hardware and other such solutions were the only practical possibility by some of the prior efforts. In addition, the degree to which the common usage preconditions approaches from device, command, and connection perspectives has taught those skilled in the art in a direction away from that taken by the present inventors. Each appear to have taught away from the combination of commercial sensitivity and technical expertise necessary to achieve the present invention. All may have combined to cause the simple fact that those skilled in the art failed to see that the problem could be solved in a relatively simple manner.
The present invention discloses a method and apparatus which can accomplish automatic I/O board configuration even when connected to a standard I/O bus. The technique involves software routines executed by the computer which first acts to activate the I/O board, then to install the I/O board properly, and then automatically acts to confirm such installation as part of the operation of that I/O board. In use, the routine initially activates some aspects of a specific I/O board. This activation is accomplished in a manner which avoids any use of address space during activation and requires a minimum in terms of specific I/O board circuitry. Once partially activated, the technique selects an initial address or other parameter in a fashion which is likely to result in a unique address. The routine then assesses if this initial address is unique, if not, another address is selected. If the address is unique, the routine assigns the address to that I/O board. The technique can act to disable electrical connections so as to avoid any inappropriate responses. After installation, the technique can also act automatically to confirm proper installation each time the I/O board is operated. Thus it will even overcome address or other conflicts created unwittingly even after the particular board has been installed correctly.
An object of the invention is to provide a device which simplifies installation needs. Naturally it is an object to avoid any need for the installer to have any specialized knowledge or training in order to accomplish installation. Additionally, it is an object to minimize the need for involved installation documentation. It is thus an object to achieve assignment of address or other parameters automatically through operation of the computer. In assigning such parameters, it is an object to accomplish the task efficiently in a manner which prioritizes likely assignments and thus achieves the assignment as quickly as possible.
An important object of the present invention is to minimize any hardware required on the I/O board itself in order to achieve the objects herein stated. Accordingly, the present invention has the object of utilizing computer capabilities with minimal added board capabilities in order to accomplish its functions. An object is thus to avoid use of address space to configure the board during activation on the I/O board and to efficiently store the address, once assigned, on the board in existing components. Generally, an object is thus to use existing features of most I/O boards to the extent possible.
Another object of the present invention is to provide both the method and a device which integrates with existing designs of computers. Accordingly, it is an object to achieve the functions desired while allowing use of a standard I/O bus. In addition, it is an object to allow utilization of the invention with existing I/O boards if desired. In so doing, an object is to not only achieve proper configuration upon installation, but also to strategically check the installation at various times to confirm that no configuration changes, or additions of I/O devices, have occurred that might have created a conflict. Additionally, it is an object that if such a conflict is created, for the invention to automatically recognize such a conflict.
Yet another object of the invention is to provide a technique which avoids undesirable effects in the event of a change in system configuration. Not only does the invention minimize any use of potentially destructive actions in achieving its aims, but it also acts automatically to purge any undesirable effects when such become possible.
As mentioned, an object is to assess if the address or other parameter is unique to the I/O board before acting to assign it to that I/O board. In so doing, it is an object of the invention to use common commandsxe2x80x94that is commands traditionally available and utilized by most I/O boardsxe2x80x94in assessing such uniqueness. In addition, it is also an object of the invention to provide only so much operation as necessary to discover a conflict and thus not only achieve its aims efficiently, but avoid inappropriate results as much as possible.
Yet another object of the invention is to accommodate user input when necessary or desired. The invention not only allows the user to override the automatic parameter selection process, but it also allows the user to change the configuration of the I/O board itself if desired.
Finally, it is also an object of the invention to provide configurations which allow a variety of I/O boards to remain in use even though such boards utilize the same address. In so providing, the invention greatly expands the number of possibilities for numerous peripheral devices while still accommodating a standard I/O bus structure.
Naturally, further objects of the invention are disclosed throughout the specification and claims.